// 律师管理模块类型定义

// 律所接口
export interface Lawfirm {
  id: number
  title: string
  provinceid: number
  cityid: number
  distid: number
  address: string
  thumb: string
  phone: string
  email: string
  create_time: number
  update_time: number
  // 扩展字段
  province?: string
  city?: string
  dist?: string
}

// 律师接口
export interface Lawyer {
  id: number
  username: string // 登录用户名，默认为手机号码
  pwd?: string // 登录密码（通常不返回给前端）
  salt?: string // 密码盐（通常不返回给前端）
  name: string // 律师姓名
  email: string // 电子邮箱
  mobile: string // 手机号码（后端为bigint，前端用string处理）
  sex: number // 性别：1-男；2-女
  thumb: string // 头像
  firmid: number // 执业律所id
  firm_name?: string // 执业律所名称
  type: number // 律师类型：0注册律师,1合作律师
  idcard: string // 律师执业证号码
  lawyer_license?: string // 执业证书照片保存路径
  provinceid: number // 执业省份id
  cityid: number // 执业城市id
  distid: number // 执业区/县id
  address: string // 详细地址
  education: string // 毕业院校
  honor: string // 获得荣誉
  adept: string // 擅长领域
  desc: string // 律师个人简介
  entry_time: number // 首次执业日期
  create_time: number // 注册时间
  update_time: number // 更新信息时间
  last_login_time: number // 最后登录时间
  login_num: number // 登录次数
  last_login_ip: string // 最后登录IP
  status: number // 状态：-1删除,0禁止登录,1正常,2离职
  can_login: number // 登录权限：0-禁止，1-允许
  admin_id: number // 关联的管理员ID
  // 扩展字段
  lawfirm?: string // 律所名称（用于列表显示）
  lawfirm_name?: string // 律所名称（别名）
  province?: string // 省份名称
  city?: string // 城市名称
  dist?: string // 区县名称
  nickname?: string // 昵称（兼容旧数据）
  phone?: string // 联系电话（兼容旧数据）
  id_number?: string // 身份证号（兼容旧数据）
  id_photo?: string // 身份证照片（兼容旧数据）
}

// 律师类型枚举
export enum LawyerType {
  REGISTERED = 0,
  COOPERATIVE = 1,
}

// 律师类型标签映射
export const LawyerTypeMap = {
  [LawyerType.REGISTERED]: { label: '注册律师', type: 'primary' },
  [LawyerType.COOPERATIVE]: { label: '合作律师', type: 'success' },
}

// 律师状态枚举
export enum LawyerStatus {
  DELETED = -1, // 已删除
  DISABLED = 0, // 禁止登录
  ENABLED = 1, // 正常
  RESIGNED = 2, // 离职
}

// 律师状态标签映射
export const LawyerStatusMap = {
  [LawyerStatus.DELETED]: { label: '已删除', type: 'info' },
  [LawyerStatus.DISABLED]: { label: '禁止登录', type: 'danger' },
  [LawyerStatus.ENABLED]: { label: '正常', type: 'success' },
  [LawyerStatus.RESIGNED]: { label: '已离职', type: 'warning' },
}

// 性别枚举
export enum Gender {
  MALE = 1,
  FEMALE = 2,
}

// 性别标签映射
export const GenderMap = {
  [Gender.MALE]: '男',
  [Gender.FEMALE]: '女',
}

// 律师表单提交接口（与后端API参数保持一致）
export interface LawyerForm {
  id?: number
  username: string // 登录用户名
  name: string // 律师姓名
  email: string // 电子邮箱
  mobile: string // 手机号码
  sex: number // 性别
  thumb: string // 头像
  firmid: number // 执业律所id
  type: number // 律师类型
  idcard: string // 律师执业证号码
  lawyer_license?: string // 执业证书照片
  provinceid: number // 省份id
  cityid: number // 城市id
  distid: number // 区县id
  address: string // 详细地址
  education: string // 毕业院校
  honor: string // 获得荣誉
  adept: string // 擅长领域
  desc: string // 个人简介
  entry_time: number // 首次执业日期
  status: number // 状态
}

// 律师查询参数接口
export interface LawyerQuery {
  keyword?: string // 搜索关键词
  firmid?: number // 律所id
  type?: number // 律师类型
  status?: number // 状态
  provinceid?: number // 省份id
  cityid?: number // 城市id
  distid?: number // 区县id
  page?: number // 页码
  limit?: number // 每页条数
}
